실행 컨텍스트
❓질문
실행 컨텍스트에 대해서 설명해주세요
💡 조사하기전 내가 알고 있던 내용
실행 컨텍스트는 렉시컬 스코프 별로 가지고있는 환경의 모음 ( 변수 , 함수 )등의 정보와 외부 렉시컬 스코프 환경에 대한 정보를 가지고 있는 것입니다.
🏫 정리한 내용
실행 컨텍스트란 자바스크립트에서 코드가 실행 되는 환경을 의미합니다.
js엔진이 코드를 실행할 때 , 그 코드가 실행될때의 환경을 정의하고 관리하기 위한 존재 입니다.
실행 컨텍스트는 크게 2가지로 나눌 수 있습니다.
전역실행컨텍스트는 자바스크립트가 처음 실행 될때 생성되는 컨텍스트입니다.
프로그램이 종료 될때까지 유지되며 , 전역에 선언된 변수와 함수 모두 포함됩니다.
전역 컨텍스트에서 선언된 변수와 함수는 프로그램 내 어디서든 접근이 가능합니다.
자바스크립트는 싱글 스레드이기 때문에 전역 실행 컨텍스트는 1개만 존재합니다.
함수 실행 컨텍스트는 함수가 호출 될때마다 생성 되는 컨텍스트를 의미 합니다.
각 함수는 자신만의 실행 컨텍스트를 가지며 이 컨텍스트 내에서 선언된 변수와 함수는 해당 함수 내에서만 유효합니다.
함수가 종료되면 실행 컨텍스트도 같이 사라집니다.
실행 컨텍스트는 어떤 구성요소로 이루워져있나요?
실행 컨텍스트는 크게 변수객체
, 스코프 체인
, this
로 이루어져있습니다
변수객체
란 실행 컨텍스트내에서 사용되는 변수와 함수선언을 저장하는 공간입니다.
전역컨텍스트에서는 전역객체가 변수객체의 역할을 하고 함수 컨텍스트에서는 활성 객체가 변수와 매개변수를 관리합니다
스코프 체인
은 현재 실행 중인 컨텍스트와 외부 렉시컬 환경의 연결을 유지합니다.
현재 컨텍스트에서 변수를 참조하다가 찾지 못한다면 외부 환경으로 범위를 넓혀가며 변수를 찾는 이유입니다.
this
는 실행컨텍스트에 따라 참조 되는 객체가 달라집니다.
전역 -> 전역객체 함수 -> 함수 호출방법 마다 다름
실행 컨텍스트는 이러한 구성 요소를 바탕으로 js 코드가 실행되는 동안의 환경을 관리하고 코드 실행시 변수의 유효 범위나 함수 호출의 맥락을 결정 짓습니다.